// pages/personalCenter/recruitForm/form/form.js
var toLog = require('../../../../module/toLog');
var transDate = require('../../../../module/transDate.js');
var saveForm = require('./module/saveForm.js');
var saveFormAuto = require('./module/saveFormAuto.js');
var publishForm = require('./module/publishForm.js');
var createForm = require('./module/createForm');
//设置要修改的项目编号
var temporalItemIndex = '';
var app = getApp();
Page({
    /**
     * 自定义函数
     */

    //页面变量初始化为0
    formInit: function () {
        //要新建的项目清空
        app.globalData.user_form[0].new_item = '';
        //默认这是一个新建项目
        app.globalData.user_form[0].edit = false;
    },

    //每次打开页面后检测这是新建表格还是编辑旧表格
    tellNewOrOld: function () {
        if (app.globalData.user_form == '') { //新表单
            wx.setNavigationBarTitle({
                title: '新建招新表'
            });
            this.setData({
                status: 'new'
            });
            //将当前表单全局变量用来存放新建的招新表
            app.globalData.user_form = [];
            app.globalData.user_form[0] = {};
        } else if (app.globalData.user_form != '') { //旧表单
            if (app.globalData.user_form[0].demo == true) {
                //如果是模板先更改用户id、模板id、创建时间、组织号等
                var demoDate = Date.now();
                var demoForm_id = 'f' + demoDate;
                var demoUser_id = app.globalData.user_info.user_id;
                var demoForm_time = transDate(demoDate);
                var demoForm_org = app.globalData.user_info.user_id_org;
                app.globalData.user_form[0].form_org = demoForm_org;
                app.globalData.user_form[0].form_id = demoForm_id;
                app.globalData.user_form[0].user_id = demoUser_id;
                app.globalData.user_form[0].form_time = demoForm_time;
                //先向后台申请新建一个表格
                createForm();
            }
            //申请创建新表格成功后将此表格的模板属性去掉
            app.globalData.user_form[0].demo = false;
            //如果是旧表单则每次打开页面就自动保存
            saveFormAuto();
            wx.setNavigationBarTitle({
                title: '编辑招新表'
            });
            this.setData({
                status: 'edit'
            });
            //初始化表单项目
            this.formInit();
            //将表单赋值给页面变量
            this.setData({
                form_num: app.globalData.user_form
            });
        }
    },

    /**
     * 页面函数
     */

    //添加头图
    new_header_img: function () {
        wx.showModal({
            title: '提示',
            content: '修改头图暂未开放',
            showCancel: false,
            confirmText: '我知道了'
        })
    },

    //新建表单名称
    new_form_name_input: function (e) {
        //设置表单名称
        app.globalData.user_form[0].form_name = e.detail.detail.value;
    },

    //新建表单说明
    new_form_des_input: function (e) {
        //设置表单说明
        app.globalData.user_form[0].form_des = e.detail.detail.value;
    },

    //确认新建表格
    new_form_create: function () {
        this.setData({
            status: 'edit'
        });
        //如果表单名称没有则置默认
        if (app.globalData.user_form[0].hasOwnProperty('form_name') == false) {
            app.globalData.user_form[0].form_name = '暂无标题';
        }
        //以当前时间的毫秒数设置表单id
        var date = Date.now();
        var form_id = 'f' + date;
        app.globalData.user_form[0].form_id = form_id;
        //设置表单创建时间
        var form_time = transDate(date);
        app.globalData.user_form[0].form_time = form_time;
        //设置表单创建者id
        app.globalData.user_form[0].user_id = app.globalData.user_info.user_id;
        //设置新的项目为表头
        app.globalData.user_form[0].item = 'header';
        //添加组织号
        app.globalData.user_form[0].form_org = app.globalData.user_info.user_id_org;
        //设置这个表单不是模板
        app.globalData.user_form[0].demo = false;
        //向后台申请新建一个表格
        createForm();
        //将表单赋值给页面变量
        this.setData({
            form_num: app.globalData.user_form
        });
        toLog('007001');
    },

    //长按进入编辑项目页面
    eidt_item: function (e) {
        this.setData({
            show_edit_item: !this.data.show_edit_item
        });
        //要修改的项目编号
        temporalItemIndex = e.currentTarget.id;
    },

    //取消显示项目编辑页面
    cancel_edit_item: function () {
        this.setData({
            show_edit_item: !this.data.show_edit_item
        });
    },

    //选择是编辑项目还是删除项目
    edit_item_click: function (e) {
        var that = this;
        this.setData({
            show_edit_item: !this.data.show_edit_item
        });
        switch (e.detail.index) {
            case 0:
                //设置这是一个修改项目
                app.globalData.user_form[0].edit = true;
                //设置修改的是第几项
                app.globalData.user_form[0].edit_num = temporalItemIndex;
                //设置需要修改的是哪个项目
                app.globalData.user_form[0].new_item = this.data.form_num[temporalItemIndex].item;
                //弹出新建项目页面
                wx.navigateTo({
                    url: 'items/items',
                });
                toLog('007010');
                break;
            case 1:
                wx.showModal({
                    title: '警告',
                    content: '确定删除这一个项目？',
                    confirmText: '删除',
                    confirmColor: '#FF0000',
                    cancelText: '返回',
                    success(res) {
                        if (res.confirm == true) {
                            if (temporalItemIndex == 0) {
                                wx.showModal({
                                    title: '提示',
                                    content: '这一项是表头，不能删除只能修改',
                                    showCancel: false,
                                    confirmText: '我知道了'
                                })
                            } else {
                                //直接删除减小现在表单的数组长度
                                app.globalData.user_form.splice(temporalItemIndex, 1);
                                //将改变后的表单赋值给页面变量
                                that.setData({
                                    form_num: app.globalData.user_form
                                })
                                //每次删除项目后就自动保存一下草稿
                                saveFormAuto();
                            }
                        }
                        toLog('007011');
                    }
                })
                break;
        }
    },

    //点击添加一个项目后弹出可以新建的项目
    newItem: function () {
        this.setData({
            show_all_items: !this.data.show_all_items
        });
    },

    //取消显示所有可以新建的项目
    cancel_all_items: function () {
        this.setData({
            show_all_items: !this.data.show_all_items
        })
    },

    //选择添加哪个项目后
    create_item: function (e) {
        this.setData({
            show_all_items: !this.data.show_all_items
        })
        switch (e.detail.index) {
            case 0:
                //提醒下一页要出现哪个项目
                app.globalData.user_form[0].new_item = 'text_field';
                wx.navigateTo({
                    url: 'items/items',
                });
                toLog('007005');
                break;
            case 1:
                app.globalData.user_form[0].new_item = 'text_fields';
                wx.navigateTo({
                    url: 'items/items',
                });
                toLog('007006');
                break;
            case 2:
                app.globalData.user_form[0].new_item = 'select';
                wx.navigateTo({
                    url: 'items/items',
                });
                toLog('007007');
                break;
            case 3:
                app.globalData.user_form[0].new_item = 'selects';
                wx.navigateTo({
                    url: 'items/items',
                });
                toLog('007008');
                break;
            case 4:
                app.globalData.user_form[0].new_item = 'number';
                wx.navigateTo({
                    url: 'items/items',
                });
                toLog('007009');
                break;
        }
    },

    //保存草稿
    saveForm: function () {
        saveForm();
        toLog('007002');
    },

    //正式发布
    publishForm: function () {
        publishForm();
        toLog('007003');
    },

    //重置表单
    resetForm: function () {
        var that = this;
        var temporal = app.globalData.user_form[0];
        wx.showModal({
            title: '警告',
            content: '确定重置表单？重置后将失去这个表单里的所有项目',
            confirmText: '重置所有',
            confirmColor: '#FF0000',
            cancelText: '返回',
            success(res) {
                if (res.confirm == true) {
                    app.globalData.user_form = [];
                    app.globalData.user_form[0] = temporal;
                    that.setData({
                        form_num: app.globalData.user_form
                    })
                }
                toLog('007004');
            }
        })
    },

    /**
     * 页面的初始数据
     */
    data: {
        //初始隐藏项目编辑选项
        show_edit_item: false,
        //编辑项目选项
        edit_item: [{
            name: '修改项目'
        }, {
            name: '删除项目'
        }],
        //初始隐藏所有可以新建的项目
        show_all_items: false,
        //所有可以新建的项目
        all_items: [{
            name: '单行文本'
        }, {
            name: '多行文本'
        }, {
            name: '单项选择'
        }, {
            name: '多项选择'
        }, {
            name: '手机/QQ/微信/邮箱'
        }],
    },

    /**
     * 生命周期函数--监听页面加载
     */
    onLoad: function (options) {

    },

    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady: function () {

    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow: function () {
        wx.hideShareMenu({});
        //每次打开页面后检测这是新建表格还是编辑旧表格
        this.tellNewOrOld();
    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide: function () {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload: function () {

    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh: function () {

    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom: function () {

    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage: function () {

    }
})